/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fertigproz.models;

import fertigproz.MySQLDriver;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author zimmbi
 */
public class AlleUnterTeileVonOberteil extends BaseTableModel {

    public static final int COLUMN_OBERTEIL = 0;
    public static final int COLUMN_UNTERTEIL = 1;
    public static final int COLUMN_ANZAHL = 2;
    public static final int COLUMN_COUNT = 3;

    public AlleUnterTeileVonOberteil(MySQLDriver mysql, int teilNr) {
        super(mysql);
        try {
            mysql.query("set @c=0");
        } catch (SQLException ex) {
            Logger.getLogger(AlleUnterTeileVonOberteil.class.getName()).log(Level.SEVERE, null, ex);
        }
        String query = "select distinct * from " +
                "(select oberteil,unterteil,anzahl,@c:=@c+1 as count from " +
                "tblIstTeilVon where oberteil = " + teilNr + " " +
                "union all " +
                "select t.oberteil, t.unterteil,t.anzahl,@c:=@c+1 as count from tblIstTeilVon t " +
                "join tblIstTeilVon t2 on t2.unterteil=t.oberteil) t3 " +
                "order by count desc";
        setQuery(query);
        System.out.println(query);
        String[] columns = new String[]{"Oberteil", "Unterteil", "Anzahl", "Count"};
        setColumnIdentifiers(columns);
        requery();
    }

    @Override
    public Object getValueAt(int row, int column) {
        if (row >= getRowCount()) {
            return null;
        }
        try {
            results.absolute(row + 1);
            switch (column) {
                case COLUMN_UNTERTEIL:
                    return results.getInt("unterteil");
                case COLUMN_ANZAHL:
                    return results.getInt("anzahl");
                case COLUMN_OBERTEIL:
                    return results.getInt("oberteil");
                case COLUMN_COUNT:
                    return results.getInt("count");
            }
        } catch (SQLException e) {
        }
        return null;
    }
}
